package gui.JPanels;

import gui.GLJPanels.GLJPanelCurvas;
import gui.GLListeners.GLListener;

import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.util.ArrayList;

import javax.swing.JButton;
import javax.swing.JPanel;

import aplicacion.Controlador;
import aplicacion.Vista;


public class JPanelGaleria extends JPanel {
	private static final long serialVersionUID = 1L;
	protected GLListener GLL,mainGLL;
	protected GLJPanelCurvas canvas,mainCanvas;
	protected int actual;
	protected ArrayList<File> filesList;
	private int circulo;
	private int elemento;
	private Controlador controlador;
	private Vista vista;
	//private JFrame ventana;
	
	public JPanelGaleria(Vista v, int cir, int elem){
		vista = v;
		controlador = vista.getControl();
		circulo = cir;
		elemento = elem;
	}
	
	public JPanelGaleria(){
		
	}


	protected void loadDefault(String folder) {
		actual = 0;
		filesList=new ArrayList<File>();
		File currentFolder = new File(folder);
		// filtramos para que solo coja archivos y no directorios
		for(File file:currentFolder.listFiles()){
			if(file.isFile()){
				filesList.add(file);
			}
		}

	}

	protected void loadFile(File file) {

	}
	
	protected void initComponents() {

		JButton button_anterior = new JButton("<< Anterior");
		button_anterior.addActionListener(new Bt_anterior_Listener());
		this.add(button_anterior, BorderLayout.EAST);
		
		JButton button_elegir = new JButton("-->Elegir<--");
		button_elegir.addActionListener(new Bt_elegir_Listener());
		this.add(button_elegir, BorderLayout.EAST);
		
		JButton button_siguiente = new JButton("Siguiente >>");
		button_siguiente.addActionListener(new Bt_siguiente_Listener());
		this.add(button_siguiente, BorderLayout.WEST);

	}

	protected class Bt_anterior_Listener implements ActionListener {
		public void actionPerformed(ActionEvent e) {			
			if (actual >= 0) {
				if(actual==0){
					actual = filesList.size() - 1;
				}
				else{
					actual--;
				}
				File currentFile = filesList.get(actual);
				loadFile(currentFile);
			}
		}
	}

	protected class Bt_siguiente_Listener implements ActionListener {
		public void actionPerformed(ActionEvent e) {			
			if (actual <= filesList.size() - 1) {
				if(actual==filesList.size() - 1)
					actual = 0;
				else {
					actual++;
				}
				File currentFile = filesList.get(actual);
				loadFile(currentFile);
			}
		}
	}
		
	protected class Bt_elegir_Listener implements ActionListener {
		public void actionPerformed(ActionEvent e) {
			Vista.setCargar(false);
			System.out.println("Ha elegido --> "+filesList.get(actual).getName());
			controlador.rellenaFileDataFlower(circulo, elemento, filesList.get(actual).getName());
			vista.openEmptyPanel();			
			if(mainCanvas!=null){
				mainCanvas.repaint();
			}
		}
	}
}
